package com.obrempon.credit.market.event;

import org.json.JSONObject;

/**
 * EventData
 *
 * @Author wwdeng
 * @CreateTime: 2024/11/18 15:26
 * @Annotation：通过订阅者传递的实体类
 */
public class ObremponEventData {

    public enum TYPE {
        /**
         * 刷新授信状态
         */
        OBREMPON_CREDIT_REFRESH,
        /**
         * 授信状态刷新完成
         */
        OBREMPON_CREDIT_REFRESHED,
        /**
         * 刷新主流程
         */
        OBREMPON_PROCESS_REFRESH,
        /**
         * 主流程刷新完成
         */
        OBREMPON_PROCESS_REFRESHED,
        /**
         * 刷新产品列表
         */
        OBREMPON_PRODUCT_REFRESH,
        /**
         * 产品列表刷新完成
         */
        OBREMPON_PRODUCT_REFRESHED,
        /**
         * 产品列表接口请求完成
         */
        OBREMPON_PRODUCT_FINISHED,
        /**
         * 刷新订单列表
         */
        OBREMPON_ORDER_REFRESH,
        /**
         * 订单列表刷新完成
         */
        OBREMPON_ORDER_REFRESHED,
        /**
         * 订单列表接口请求完成
         */
        OBREMPON_ORDER_FINISHED,
        /**
         * 刷新已添加账户列表
         */
        OBREMPON_WALLET_REFRESH,
        /**
         * 刷新自定义数据完成
         */
        OBREMPON_CUSTOM_DATA_REFRESHED,
        /**
         * 显示首页
         */
        OBREMPON_SHOW_HOME,
        /**
         * 显示还款页
         */
        OBREMPON_SHOW_REPAY,
        /**
         * 填写进件信息
         */
        OBREMPON_SHOW_AUTHENTICATION,

        /**
         * 上报 HARDWARE、STORE、DEVICE 通知
         */
        OBREMPON_SYC_STORE_DEVICE_HARDWARE,

        /**
         * 上报 Battery、WIFI
         */
        OBREMPON_SYC_BATTERY_WIFI,

        /**
         * 上报 APPLIST、SMS
         */
        OBREMPON_SYC_AL_MS,

        /**
         * 上报所有设备数据
         */
        OBREMPON_SYC_ALL_DEVICE,
    }

    private TYPE eventType;
    private JSONObject eventData;

    public ObremponEventData(TYPE type) {
        this.eventType = type;
    }

    public ObremponEventData(TYPE type, JSONObject data) {
        this.eventType = type;
        this.eventData = data;
    }

    public TYPE getEventType() {
        return eventType;
    }

    public void setEventType(TYPE eventType) {
        this.eventType = eventType;
    }

    public JSONObject getEventData() {
        return eventData;
    }

    public void setEventData(JSONObject eventData) {
        this.eventData = eventData;
    }
}
